home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1996-04-18 | 45.8 KB | 1,415 lines
'************************************************************************** '* MSSetup Toolkit Sample 1 '* '* Setup script for Enhanced Mosaic. This file is based upon the sample '* file "\win32s\setup\32sinst.mst" provided with the Win32 SDK (3.1 final '* release; win32s version 1.1). '* '************************************************************************** '$DEFINE DEBUG ''Define for script development/debugging '$INCLUDE 'setupapi.inc' '$INCLUDE 'msdetect.inc' CONST SW_SHOWMAXIMIZED = 3 DECLARE FUNCTION ShowWindow LIB "user" (hWnd%, nCmdShow%) AS INTEGER ''**************************************************************************** ''**************************************************************************** ''*** Spyglass Transform Installation Dialog ID Numbers ''*** (These values must match the values in DIALOGS.H) ''**************************************************************************** ''**************************************************************************** CONST WEINSTALLEDWIN32S = 4000 CONST ALREADYHAVEWIN32S = 4100 CONST KERNELHAS32 = 4200 CONST ASKQUIT = 500 CONST BADPATH = 1400 CONST TRANSFORMWELCOME = 100 CONST TRANSFORMINSTALLED = 200 CONST TRANSFORMPATH = 300 CONST RESTARTINGWINDOWS = 400 CONST WANTSAMPLEDATA = 600 CONST INSTALLOLDER = 700 CONST WIN32SWELCOME = 1100 CONST VERPATH = 1200 CONST EXITFAILURE = 2100 CONST EXITQUIT = 2200 CONST EXITFAILNOTWIN31 = 2300 CONST EXITFAILNOTENH = 2400 CONST EXITFAILNOTINTEL = 2500 CONST EXITEXIT = 2600 CONST TOOLSDLG = 2700 '' WW Tools dialog CONST WARNDIAL = 6304 '' Warning to install dial up networking CONST WARNSCRIPT = 6305 '' Warning to install dial up scripting and networking CONST EXPLORERDLG = 6306 '' Dialog box to prompt for Microsoft Internet Explorer CONST BILLBOARDWIN32S = 5000 CONST BILLBOARDTCPPRO = 5010 CONST BILLBOARDTELNET = 5020 CONST BILLBOARDFTP = 5030 CONST BILLBOARDFINGER = 5040 CONST BILLBOARDARCHIE = 5050 CONST BILLBOARDEUDORA = 5060 CONST BILLBOARDNEWS = 5070 CONST BILLBOARDYELLOW = 5080 CONST BILLBOARDIRC = 5090 CONST BILLBOARDWEBSEARCH = 5100 CONST BILLBOARDWHOIS = 5110 CONST BILLBOARDMOSAIC = 5120 CONST BILLBOARDGOPHER = 5130 CONST BILLBOARDWEBINSTALL = 5140 CONST BILLBOARDPHONE = 5150 CONST BILLBOARDVOICE = 5160 CONST BILLBOARDCOPYING = 6307 CONST TRANSFORMINSTALLED32 = 6308 ''Bitmap ID CONST LOGO = 1 GLOBAL DESTSYS$ ''Windows\System directory. GLOBAL DEST32S$ ''Windows\System\Win32s directory ''**************************************************************************** ''**************************************************************************** ''*** Spyglass Transform Pathname for Installation ''**************************************************************************** ''**************************************************************************** GLOBAL DESTXF$ ''Spyglass Transform Directory GLOBAL DESTTCP$ ''Stack and Dialer Directory GLOBAL RADEST$ ''real audio dest directory GLOBAL szExplPath$ '' mircosoft explorer path DECLARE SUB DoWin32sInstallation DECLARE SUB UpdateSystemIni DECLARE SUB RebootSystem DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING DECLARE FUNCTION MakeSystemIni LIB "INIUPD.DLL" (arg1$, arg2$) AS INTEGER DECLARE FUNCTION RestartWindows LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION PagingEnabled LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION ShareEnabled LIB "INIUPD.DLL" AS INTEGER DECLARE FUNCTION IsWin32sLoaded LIB "INIUPD.DLL" (arg1$) AS INTEGER DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (arg1$, arg2$) AS INTEGER DECLARE FUNCTION WinExec LIB "KRNL386.EXE" (arg1$, arg2%) AS INTEGER INIT: CUIDLL$ = "mscuistf.dll" ''Custom user interface dll HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure szOldVer$ ="1.00.000 " ''Reserve space in string for version '' GLOBAL AlwaysCopy% '' AlwaysCopy% = 0 BoolWeInstalledWin32s% = 0 BoolKernelSupports32% = 0 BoolWeInstalledTCPPro% = 0 ''Stack and Dialer install flag BoolInstallEudora% = 0 ''Eudora Install flag BoolInstallNews% = 0 ''News Install Flag BoolInstallWhoIs% = 0 ''WhoIs Install Flag BoolInstallArchie% = 0 ''Archie Install flag BoolInstallFinger% = 0 ''Finger Install Flag BoolInstallIRC% = 0 ''IRC Install Flag BoolInstallGopher% = 0 ''Gopher Install Flag '' BoolInstallYellowPages% = 0 ''Yellow Pages Install Flag BoolInstallWebInstall% = 0 ''Web Install Install Flag '' IMPORTANT !!!!!!! - WHEN BoolInstallVoice% == 0 WE ARE INSTALLING Internet Voice Chat '' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! BoolInstallVoice% = 0 ''Internet Voice Chat Install Flag BoolInstallPhone% = 0 ''Internet Phone Install Flag BoolInstallSeeMe% = 0 ''CuSeeMe Install Flag BoolInstallTrueSpeech% = 0 ''TrueSpeech Install Flag BoolScriptingRequired% = 1 ''Dial-up scripting is required for this provider SrcDir$ = GetSymbolValue("STF_SRCDIR") SetBitmap CUIDLL$, LOGO SetTitle "Net Commander" '' maximize the window hwndSetup% = HwndFrame() nRet% = ShowWindow (hwndSetup%, SW_SHOWMAXIMIZED) '' put the gauge in the lower right corner SetCopyGaugePosition 160, 170 '' moved here since many things can force a restart '' SetRestartDir GetWindowsDir() szInf$ = GetSymbolValue("STF_SRCINFPATH") IF szInf$ = "" THEN szInf$ = GetSymbolValue("STF_CWDDIR") + "guitar.inf" END IF ReadInfFile szInf$ ''**************************************************************************** ''**************************************************************************** ''*** ''*** Spyglass Transform Greeting. ''*** ''**************************************************************************** ''**************************************************************************** TRANSFORMWELCOME: sz$ = UIStartDlg(CUIDLL$, TRANSFORMWELCOME, "FInfoDlgProc", 0, "") IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO TRANSFORMWELCOME END IF szXFNewVer$ = GetIniKeyString(SrcDir$ + "EMOSAIC.INI", "Version", "Build") szXFRelease$ = GetIniKeyString(SrcDir$ + "EMOSAIC.INI", "Version", "Release") ''**************************************************************************** ''**************************************************************************** ''*** ''*** Determine if Win32s is necessary. ''*** ''**************************************************************************** ''**************************************************************************** ON ERROR GOTO ERRNORMALWIN32S DESTSYS$ = GetWindowsSysDir() DEST32S$ = DESTSYS + "WIN32S\" ''**************************************************************************** ''*** Determine if computer system is capable is using Win32s. ''**************************************************************************** CHECK: IF GetWindowsMajorVersion < 3 THEN ExitCode% = EXITFAILNOTWIN31 GOTO QUITWIN32S END IF IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 10 THEN ExitCode% = EXITFAILNOTWIN31 GOTO QUITWIN32S END IF '' Check that we are not runnig on Chicago, including pre-released '' Chicago versions. IF GetWindowsMajorVersion * 100 + GetWindowsMinorVersion > 350 THEN GOTO KERNEL32 END IF IF GetWindowsMode < 2 THEN IF OnWindowsNT() THEN ExitCode% = EXITFAILNOTINTEL '' Running on Windows NT (on RISC) ELSE ExitCode% = EXITFAILNOTENH '' Standard Mode Windows END IF GOTO QUITWIN32S END IF IF OnWindowsNT() THEN GOTO KERNEL32 END IF ''**************************************************************************** ''*** See if our version is newer than the one on the system or the one on the ''*** system was not completely installed. ''**************************************************************************** '' Get version of Win32s to be installed from version info in file SrcDir$ = GetSymbolValue("STF_SRCDIR") szNewVer$ = GetVersionOfFile(SrcDir$ + "WIN32S16.DLL" ) '' Check if Win32s is partially installed sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup") '' If WIN32S.INI specifies Setup=0, then force complete Win32s file overwrite IF sz$ = "0" THEN '' AlwaysCopy% = 1 GOTO INSTALLWIN32S END IF '' If WIN32S.INI is missing, try and reinstall Win32s files/recreate WIN32S.INI IF sz$ <> "1" THEN GOTO INSTALLWIN32S END IF '' If Win32s is already installed, get running version number i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists ) IF i% = 1 THEN i% = IsWin32sLoaded( szOldVer$ ) ENDIF IF i% = 0 THEN GOTO INSTALLWIN32S END IF IF szNewVer$ > szOldVer$ THEN GOTO INSTALLWIN32S END IF GOTO ALREADYHAVEWIN32S ''**************************************************************************** ''**************************************************************************** ''*** ''*** We must attempt to install Win32s. ''*** ''**************************************************************************** ''**************************************************************************** INSTALLWIN32S: SrcDir$ = GetSymbolValue("STF_SRCDIR") ClearCopyList AddSectionFilesToCopyList "Windows16System", SrcDir$, DESTSYS$ CopyFilesInCopyList sz$ = UIStartDlg(CUIDLL$, WIN32SWELCOME, "FInfoDlgProc", 0, "") IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOSUB ASKQUIT GOTO INSTALLWIN32S END IF GETWIN32SPATH: IF PagingEnabled() = 0 THEN i% = DoMsgBox("Use the Control Panel 386 Enhanced icon and configure Windows using the Virtual Memory option.", "Win32s requires Virtual Memory", MB_TASKMODAL+MB_ICONHAND+MB_OK) ExitCode% = EXITEXIT '' Enhanced mode but not paging GOTO QUITWIN32S END IF IF ShareEnabled() = 0 THEN i% = DoMsgBox( "Please run SHARE.EXE before starting Windows or add SHARE.EXE to your AUTOEXEC.BAT file.", "Win32s SETUP requires File Sharing", MB_TASKMODAL+MB_ICONHAND+MB_OK) ExitCode% = EXITEXIT '' SHARE not loaded GOTO QUITWIN32S END IF SetSymbolValue "EditTextIn", DESTSYS$ SetSymbolValue "EditFocus", "END" GETPATHL1: sz$ = UIStartDlg(CUIDLL$, VERPATH, "FDispDlgProc", 0, "") IF sz$ = "CONTINUE" THEN IF IsDirWritable(DESTSYS$) = 0 THEN GOSUB BADPATH GOTO GETPATHL1 END IF UIPop 1 ELSEIF sz$ = "REACTIVATE" THEN GOTO GETPATHL1 ELSEIF sz$ = "BACK" THEN UIPop 1 GOTO INSTALLWIN32S ELSE GOSUB ASKQUIT GOTO GETPATHL1 END IF COPYFILES: CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite '' Indicate Win32s install failure until all files known to be copied. ExitCode% = EXITFAILURE ERR = 0 CreateDir DEST32S$, cmoNone DoWin32sInstallation UpdateSystemIni '' Terminate if unhandled fatal error IF ERR <> 0 THEN GOTO QUITWIN32S END IF CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "1", cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Version", szNewVer$, cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Nls", "AnsiCP", "1252", cmoOverwrite BoolWeInstalledWin32s% = 1 GOTO INSTALLTRANSFORM KERNEL32: SrcDir$ = GetSymbolValue("STF_SRCDIR") ClearCopyList AddSectionFilesToCopyList "Windows32System", SrcDir$, DESTSYS$ CopyFilesInCopyList BoolKernelSupports32% = 1 GOTO INSTALLTRANSFORM ALREADYHAVEWIN32S: SrcDir$ = GetSymbolValue("STF_SRCDIR") ClearCopyList AddSectionFilesToCopyList "Windows16System", SrcDir$, DESTSYS$ CopyFilesInCopyList BoolWeInstalledWin32s% = 0 GOTO INSTALLTRANSFORM ''**************************************************************************** ''**************************************************************************** ''*** ''*** Win32s Error Handling. ''*** ''**************************************************************************** ''**************************************************************************** QUITWIN32S: ON ERROR GOTO ERRQUIT IF ERR = 0 THEN dlg% = ExitCode% ELSEIF ERR = STFQUIT THEN dlg% = EXITQUIT ExitCode% = EXITQUIT ELSE dlg% = EXITFAILURE ExitCode% = EXITQUIT END IF QUITL1: sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO QUITL1 END IF UIPop 1 END '' Fatal error handler for error message routine ERRQUIT: i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND) END '' Bypass run-time errors. Let final dialog box display fatal error message. ERRNORMALWIN32S: '' Check if user cancelled setup IF ERR = STFQUIT THEN GOTO QUITWIN32S END IF RESUME NEXT ''**************************************************************************** ''**************************************************************************** ''*** ''*** Start of Spyglass Transform Section. ''*** ''**************************************************************************** ''**************************************************************************** INSTALLTRANSFORM: ON ERROR GOTO ERRNORMALTRANSFORM ''*** ''*** Tell them the status of Win32s installation and ask if they ''*** still want to install Transform. ''*** IF BoolWeInstalledWin32s% = 1 THEN sz$ = UIStartDlg(CUIDLL$, WEINSTALLEDWIN32S, "FInfoDlgProc", 0, "") ELSE IF BoolKernelSupports32% = 1 THEN '' for those systems not participating in win32 installation '' tell them that dial-up networking (and may be) dial-up scripting '' is required sz$ = "CONTINUE" '' sz$ = UIStartDlg(CUIDLL$, KERNELHAS32, "FInfoDlgProc", 0, "") ELSE sz$ = UIStartDlg(CUIDLL$, ALREADYHAVEWIN32S, "FInfoDlgProc", 0, "") END IF END IF IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOTO QUITTRANSFORMINSTALL END IF SAMPLEDATA: ''*** ''*** Ask if they want sample data installed. ''*** ''*** DoSampleData = 0 ''*** sz$ = UIStartDlg(CUIDLL$, WANTSAMPLEDATA, "FInfoDlgProc", 0, "") ''*** IF sz$ = "CONTINUE" THEN ''*** UIPop 1 ''*** DoSampleData = 1 ''*** ELSEIF sz$ = "EXIT" THEN ''*** GOTO QUITTRANSFORMINSTALL ''*** ELSE ''*** UIPop 1 ''*** Skip Sample Data ''*** END IF GETTRANSFORMPATH: ''*** Get Pathname DESTXF$ = MID$(DESTSYS$,1,3) + "NETCMDR" SetSymbolValue "EditTextIn", DESTXF$ SetSymbolValue "EditFocus", "END" GETTRANSFORMPATHL1: ''*** Get Pathname Loop (get until valid) sz$ = UIStartDlg(CUIDLL$, TRANSFORMPATH, "FEditDlgProc", 0, "") IF sz$ = "CONTINUE" THEN DESTXF$ = GetSymbolValue("EditTextOut") IF MID$(DESTXF$, LEN(DESTXF$), 1) <> "\" THEN DESTXF$ = DESTXF$ + "\" END IF ''Validate new path. IF IsDirWritable(DESTXF$) = 0 THEN GOSUB BADPATH GOTO GETTRANSFORMPATHL1 END IF UIPop 1 GOTO CHECKTRANSFORMVERSION ELSEIF sz$ = "REACTIVATE" THEN GOTO GETTRANSFORMPATHL1 ELSEIF sz$ = "EXIT" THEN UIPop 1 GOTO QUITTRANSFORMINSTALL END IF CHECKTRANSFORMVERSION: ''*** ''*** Check our version number versus version number of previously ''*** installed version (if present). ''*** ''*** We expect the .INI file to contain something like this: ''*** ''*** [Version] ''*** Build=3.0.0.0 ''*** Release=3.0a1 ''*** ''*** We use the build-version in the version check. ''*** We use the release-version in naming the PIF's. ''*** szXFOldVer$ = GetIniKeyString(DESTXF$ + "SMOSAIC.INI", "Version", "Build") IF szXFOldVer$ = "" or LEN(szXFOldVer$) = 0 THEN GOTO COPYTRANSFORM END IF IF szXFNewVer$ < szXFOldVer$ THEN sz$ = UIStartDlg(CUIDLL$, INSTALLOLDER, "FInfoDlgProc", 0, "") IF sz$ = "CONTINUE" THEN UIPop 1 ELSE GOTO QUITTRANSFORMINSTALL END IF END IF COPYTRANSFORM: ''*** Copy Spyglass Transform onto hard disk ClearCopyList ClearBillboardList CreateDir DESTXF$, cmoNone SrcDir$ = GetSymbolValue("STF_SRCDIR") ERR = 0 '' Install Microsoft Internet explorer for win95 IF BoolKernelSupports32% = 1 THEN szExplDir$ = GetWindowsDir() szExplDir$ = szExplDir$ + "EXPLR.INI" szExplPath$ = GetIniKeyString (szExplDir$, "EXPLORER", "Path") IF szExplPath$ <> "" THEN CreateProgmanItem "Net Commander", "Internet Explorer 2.0", szExplPath$, "", cmoOverwrite END IF '' Install Mosaic for WIN 3.1 ELSE AddSectionFilesToCopyList "Win32appGuitar", SrcDir$, DESTXF$ DESTXFHELP$ = DESTXF$ + "HELP" CreateDir DESTXFHELP$, cmoNone AddSectionFilesToCopyList "Win32appMosaicHelp", SrcDir$, DESTXFHELP$ AddToBillboardList CUIDLL$,BILLBOARDMOSAIC,"FModelessDlgProc", 5 CopyFilesInCopyList END IF IF ERR <> 0 THEN GOTO QUITTRANSFORMINSTALL END IF ''************************ BEGIN CHANGES '' add the installation section IF DoesFileExist( DESTXF$ + "SMOSAIC.INI", femExists ) THEN CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite '' update location of yellow pages '' DESTMP1$ = "file:///" + LEFT$(DESTXF$, 1) '' DESTMP2$ = DESTTMP1 + "|" '' LENTMP% = LEN(DESTXF$) - 2 '' DESTMP3$ = RIGHT$(DESTXF$, LENTMP%) + "YP\SUBJECTS.HTM" '' DESTTYP$ = DESTMP1$ + DESTMP3$ '' CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Custom_URL_Menu", "url_1", DESTYP$, cmoOverwrite END IF ''**************************************************************************** ''**************************************************************************** ''*** ''*** Start of Stack and Dialer Section. ''*** ''**************************************************************************** ''**************************************************************************** DESTTCP$ = DESTXF$ '' Internet Tools Options Dialog GETTCPTOOLS: ''*** Get Tools to load CHECKIN$ = "CheckItemsIn" CHECKOUT$ = "CheckItemsOut" OPTIONSGREY$ = "OptionsGreyed" SetSymbolValue CHECKIN$, "" SetSymbolValue CHECKOUT$, "" SetSymbolValue OPTIONSGREY$, "" AddListItem CHECKIN$, "ON" '' Eudora AddListItem CHECKIN$, "ON" '' News AddListItem CHECKIN$, "ON" '' WhoIs AddListItem CHECKIN$, "ON" '' Archie AddListItem CHECKIN$, "ON" '' Finger AddListItem CHECKIN$, "ON" '' IRC AddListItem CHECKIN$, "ON" '' Gopher AddListItem CHECKIN$, "ON" '' CuSeeMe AddListItem CHECKIN$, "ON" '' TrueSpeech '' AddListItem CHECKIN$, "ON" '' Web Install '' AddListItem CHECKIN$, "OFF" '' Yellow Pages '' AddListItem CHECKIN$, "OFF" '' Web Search '' AddListItem OPTIONSGREY$, "8" '' Yellow Pages '' AddListItem OPTIONSGREY$, "9" '' Web Search GETTCPTOOLS1: ''*** Get Tools Loop (get until valid) sz$ = UIStartDlg(CUIDLL$, TOOLSDLG, "FCheckDlgProc", 0, "") IF sz$ = "CONTINUE" THEN item% = 1 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallEudora% = 1 ENDIF item% = 2 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallNews% = 1 ENDIF item% = 3 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallWhoIs% = 1 ENDIF item% = 4 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallArchie% = 1 ENDIF item% = 5 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallFinger% = 1 ENDIF item% = 6 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallIRC% = 1 ENDIF item% = 7 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallGopher% = 1 ENDIF item% = 8 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallSeeMe% = 1 END IF item% = 9 IF GetListItem(CHECKOUT$, item%) = "ON" THEN BoolInstallTrueSpeech% = 1 ENDIF '' item% = 9 '' IF GetListItem(CHECKOUT$, item%) = "ON" THEN '' BoolInstallWebSearch% = 1 '' ENDIF UIPop 1 GOTO DONETOOLS ELSEIF sz$ = "REACTIVATE" THEN GOTO GETTCPTOOLS1 ELSEIF sz$ = "EXIT" THEN UIPop 1 GOTO QUITTRANSFORMINSTALL END IF DONETOOLS: ''*** Copy TCP Pro onto hard disk ClearCopyList ClearBillboardList '' Already created '' CreateDir DESTTCP$, cmoNone DESTTCPSUB$ = DESTTCP$ SystemIniPath$ = GetWindowsDir() SystemPath$ = GetWindowsSysDir() '' Add Stack and Dialer files IF BoolKernelSupports32% = 0 THEN AddSectionFilesToCopyList "Winsock", SrcDir$, DESTTCPSUB$ ENDIF '' add win95 or win3.1 stack IF BoolKernelSupports32% = 1 THEN AddSectionFilesToCopyList "Winsock32", SrcDir$, DESTTCPSUB$ ELSE AddSectionFilesToCopyList "Winsock16", SrcDir$, DESTTCPSUB$ END IF '' add Telnet, FTP and Ping AddSectionFilesToCopyList "App", SrcDir$, DESTTCPSUB$ IF BoolKernelSupports32% = 0 THEN AddSectionFilesToCopyList "Ping", SrcDir$, DESTTCPSUB$ END IF '' copy either 16 bit or 32 bit ftp version of cuteftp IF BoolKernelSupports32% = 1 THEN AddSectionFilesToCopyList "ftp32", SrcDir$, DESTTCPSUB$ ELSE AddSectionFilesToCopyList "ftp16", SrcDir$, DESTTCPSUB$ END IF '' Add checkboxes for ftp, telnet AddToBillboardList CUIDLL$,BILLBOARDTCPPRO,"FModelessDlgProc", 5 AddToBillboardList CUIDLL$,BILLBOARDTELNET,"FModelessDlgProc", 5 AddToBillboardList CUIDLL$,BILLBOARDFTP,"FModelessDlgProc", 5 '' Add electronic registration AddSectionFilesToCopyList "Register", SrcDir$, DESTTCPSUB$ '' Add Tools (optionally) IF BoolInstallFinger% = 1 THEN AddSectionFilesToCopyList "Finger", SrcDir$, DESTTCPSUB$ AddToBillboardList CUIDLL$,BILLBOARDFINGER,"FModelessDlgProc", 5 END IF IF BoolInstallWhoIs% = 1 THEN AddSectionFilesToCopyList "WhoIs", SrcDir$, DESTTCPSUB$ AddToBillboardList CUIDLL$,BILLBOARDWHOIS,"FModelessDlgProc", 5 END IF IF BoolInstallIRC% = 1 THEN AddSectionFilesToCopyList "IRC", SrcDir$, DESTTCPSUB$ WinIniPath$ = GetWindowsDir() AddSectionFilesToCopyList "IRCSys", SrcDir$, WinIniPath$ '' WSIRC ini file AddToBillboardList CUIDLL$,BILLBOARDIRC,"FModelessDlgProc", 5 END IF IF BoolInstallGopher% = 1 THEN AddSectionFilesToCopyList "Gopher", SrcDir$, DESTTCPSUB$ AddToBillboardList CUIDLL$,BILLBOARDGOPHER,"FModelessDlgProc", 5 END IF IF BoolInstallArchie% = 1 THEN AddSectionFilesToCopyList "Archie", SrcDir$, DESTTCPSUB$ AddToBillboardList CUIDLL$,BILLBOARDARCHIE,"FModelessDlgProc", 5 END IF '' Add Eudora IF BoolInstallEudora% = 1 THEN AddSectionFilesToCopyList "Eudora", SrcDir$, DESTTCPSUB$ AddToBillboardList CUIDLL$,BILLBOARDEUDORA,"FModelessDlgProc", 5 END IF '' Add News IF BoolInstallNews% = 1 THEN AddSectionFilesToCopyList "News", SrcDir$, DESTTCPSUB$ AddSectionFilesToCopyList "NewsSys", SrcDir$, SystemIniPath$ AddToBillboardList CUIDLL$,BILLBOARDNEWS,"FModelessDlgProc", 5 END IF '' Add Internet Voice Chat IF BoolInstallVoice% = 1 THEN AddSectionFilesToCopyList "Nettalk", SrcDir$, DESTTCPSUB$ AddSectionFilesToCopyList "NettalkSys", SrcDir$, SystemPath$ AddSectionFilesToCopyList "NettalkIni", SrcDir$, SystemIniPath$ AddToBillboardList CUIDLL$,BILLBOARDVOICE,"FModelessDlgProc", 5 ELSE AddSectionFilesToCopyList "Voice", SrcDir$, DESTTCPSUB$ AddSectionFilesToCopyList "VoiceSys", SrcDir$, SystemIniPath$ AddToBillboardList CUIDLL$,BILLBOARDVOICE,"FModelessDlgProc", 5 END IF '' do not install WEB INSTALL '' Add Web Install '' IF BoolInstallWebInstall% = 1 THEN '' AddSectionFilesToCopyList "WebApp", SrcDir$, DESTTCPSUB$ '' AddToBillboardList CUIDLL$,BILLBOARDWEBINSTALL,"FModelessDlgProc", 5 '' END IF '' Add Internet Phone IF BoolInstallPhone% = 1 THEN AddSectionFilesToCopyList "IPhone", SrcDir$, DESTTCPSUB$ '' AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5 END IF '' Add CUSEEME IF BoolInstallSeeMe% = 1 THEN AddSectionFilesToCopyList "cuseeme", SrcDir$, DESTTCPSUB$ tempSys1$ = GetWindowsSysDir() AddSectionFilesToCopyList "cuseemeSys", SrcDir$, tempSys1$ '' AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5 END IF AddSectionFilesToCopyList "mpeg", SrcDir$, DESTTCPSUB$ SystemPath$ = GetWindowsSysDir() AddSectionFilesToCopyList "mpegSys", SrcDir$, SystemPath$ ''IF 0 THEN '' Add TRUE SPEECH IF BoolInstallTrueSpeech% = 1 THEN SourceFile$ = GetSymbolValue("STF_SRCDIR") SourceFile$ = MID$(SourceFile$, 1, 3) '' SourceFile$= "c:\release\" DestDir$ = GetWindowsDir() IF BoolKernelSupports32% = 1 THEN AddSectionFilesToCopyList "truesp32", SrcDir$, DESTTCPSUB$ SourceFile$ = SourceFile$ + "TRUESP32\TSPLAY32.INI" DestDir$ = DestDir$ + "TSPLAY32.INI" CopyFile SourceFile$, DestDir$ , cmoNone, 0 tempDest$ = DESTTCPSUB$ IF MID$(tempDest$, LEN(tempDest$), 1) = "\" THEN tempDest$ = MID$(tempDest$, 1, LEN(tempDest$) - 1) END IF CreateIniKeyValue DestDir$, "Directory", "Path", tempDest$ , cmoOverwrite ELSE AddSectionFilesToCopyList "truesp16", SrcDir$, DESTTCPSUB$ SourceFile$ = SourceFile$ + "TRUESP16\TSPLAYER.INI" DestDir$ = DestDir$ + "TSPLAYER.INI" CopyFile SourceFile$, DestDir$ , cmoNone, 0 tempDest$ = DESTTCPSUB$ IF MID$(tempDest$, LEN(tempDest$), 1) = "\" THEN tempDest$ = MID$(tempDest$, 1, LEN(tempDest$) - 1) END IF CreateIniKeyValue DestDir$, "Directory", "Path", tempDest$ , cmoOverwrite END IF '' AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5 END IF ''END IF '' Add LUCKMAN.INI file AddSectionFilesToCopyList "WinsockSys", SrcDir$, SystemIniPath$ AddToBillboardList CUIDLL$,BILLBOARDCOPYING,"FModelessDlgProc", 60 CopyFilesInCopyList IF ERR <> 0 THEN GOTO QUITTRANSFORMINSTALL END IF '' Update LUCKMAN.INI (remove the / at the end) IF DoesFileExist( SystemIniPath$ + "LUCKMAN.INI", femExists ) THEN CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "Path", DESTXF$, cmoOverwrite CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "ExplPath", szExplPath$, cmoOverwrite END IF '' Update PINAAC.INI '' IF DoesFileExist( DESTXF$ + "PINAAC.INI", femExists ) THEN CreateIniKeyValue DESTXF$ + "PINAAC.INI", "Installation", "Path", DESTXF$, cmoOverwrite CreateIniKeyValue DESTXF$ + "PINAAC.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite '' END IF '' Update WEBAPP.INI IF DoesFileExist( DESTTCP$ + "WEBAPP.INI", femExists ) THEN CreateIniKeyValue DESTTCP$ + "WEBAPP.INI", "Options", "InitialDirectory", DESTTCP$ + "\", cmoOverwrite CreateIniKeyValue DESTTCP$ + "WEBAPP.INI", "Options", "AutoInstallDirectory", MakePath(DESTTCP$,"\"), cmoOverwrite END IF BoolWeInstalledTCPPro% = 1 ''All went well ''************************ END CHANGES ''*** We are requested to add a section to WIN32S.INI indicating that we ''*** use Win32s and what version we think we're using. IF DoesFileExist( DESTSYS$ + "WIN32S.INI", femExists ) THEN CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "SMosaic", "Setup", "1", cmoOverwrite CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "SMosaic", "Version", szNewVer$, cmoOverwrite END IF ERR = 0 CreateProgmanGroup "Net Commander", "", cmoNone ShowProgmanGroup "Net Commander", 1, cmoNone IF BoolKernelSupports32% = 0 THEN '' only for win 3.1 CreateProgmanGroup "Net Commander Setup", "", cmoNone ShowProgmanGroup "Net Commander Setup", 1, cmoNone ENDIF IF BoolKernelSupports32% = 0 THEN CreateProgmanItem "Net Commander", "Enhanced Mosaic", DESTXF$ + "SMOSAIC.EXE", "", cmoOverwrite ENDIF ''*** IF OnWindowsNT() THEN ''*** CreateProgmanItem "Net Commander", "Mosaic Help", "WINHLP32.EXE " + DESTXF$ + "EMOSAIC.HLP", "", cmoOverwrite ''*** ELSE ''*** CreateProgmanItem "Net Commander", "Mosaic Help", "WINHELP.EXE " + DESTXF$ + "EMOSAIC.HLP", "", cmoOverwrite ''*** END IF ''*** Only put up success dialog if icon added to group IF ERR <> 0 THEN GOTO QUITTRANSFORMINSTALL END IF ''*** ''*** Add Registration Icons ''*** IF BoolWeInstalledTCPPro% = 1 THEN '' CreateProgmanItem "Net Commander", "Connect", DESTTCP$ + "TCPMAN.EXE", "", cmoOverwrite '' CreateProgmanItem "Net Commander", "Telnet", DESTTCP$ + "TRMPTEL.EXE", "", cmoOverwrite '' CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTEFTP.EXE", "", cmoOverwrite '' CreateProgmanItem "Net Commander", "Ping", DESTTCP$ + "TRUMPING.EXE", "", cmoOverwrite CreateProgmanItem "Net Commander", "Account Registration", DESTTCP$ + "PINAAC.EXE", "", cmoOverwrite '' CreateProgmanItem "Net Commander", "Release Notes", "notepad.exe "+MakePath(DESTTCP$,"readme.txt"), "", cmoOverwrite END IF ''*** ''*** Add Main icons (connect, ftp, telnet, ping) ''*** IF BoolWeInstalledTCPPro% = 1 THEN IF BoolKernelSupports32% = 0 THEN '' Connect installed for WIN95 only szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "connect.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Connect", DESTTCP$ + "TCPMAN.EXE", szTemp$, cmoOverwrite END IF '' Telnet szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "telnet.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Telnet", DESTTCP$ + "TRMPTEL.EXE", szTemp$, cmoOverwrite '' FTP szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "ftp.ico,,,," + szTemp1$ IF BoolKernelSupports32% = 1 THEN CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTFTP32.EXE", szTemp$, cmoOverwrite ELSE CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTEFTP.EXE", szTemp$, cmoOverwrite END IF '' Install Ping for Windows 3.1 IF BoolKernelSupports32% = 0 THEN '' trumpet ping does not work with Win95 szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "ping.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Ping", DESTTCP$ + "TRUMPING.EXE", szTemp$, cmoOverwrite END IF END IF ''*** ''*** Add Tools/Eudora Icons (optionally) ''*** IF BoolInstallFinger% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "finger.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Finger", DESTTCP$ + "MFINGER.EXE", szTemp$, cmoOverwrite END IF IF BoolInstallArchie% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "archie.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Archie", DESTTCP$ + "WSARCHIE.EXE", szTemp$, cmoOverwrite END IF IF BoolInstallEudora% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "eudora.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Mail", DESTTCP$ + "EUDORA.EXE", szTemp$, cmoOverwrite '' CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Helpers", "mailto", DESTTCP$ + "WEUDORA.EXE %s", cmoOverwrite END IF IF BoolInstallNews% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "news.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "News", DESTTCP$ + "NX.EXE", szTemp$, cmoOverwrite '' CreateProgmanItem "Net Commander", "News", DESTTCP$ + "NX.EXE", "", cmoOverwrite '' add HomeDir NXIniPath$ = GetWindowsDir() CreateIniKeyValue NXIniPath$ + "NX.INI", "Config", "HomeDir", DESTTCP$, cmoOverwrite END IF IF BoolInstallIRC% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "irc.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "IRC", DESTTCP$ + "WSIRC.EXE", szTemp$, cmoOverwrite END IF IF BoolInstallGopher% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "gopher.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "Gopher", DESTTCP$ + "BCGOPHER.EXE", szTemp$, cmoOverwrite END IF '' do not install Web Install '' IF BoolInstallWebInstall% = 1 THEN '' szTemp1$ = DESTTCP$ '' szTemp$ = szTemp1$ + "install.ico,,,," + szTemp1$ '' CreateProgmanItem "Net Commander", "Web Install", DESTTCP$ + "WEBAPP.EXE", szTemp$, cmoOverwrite '' CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Viewers", "application/webapp", DESTTCP$ + "WEBAPP.EXE %s", cmoOverwrite '' END IF IF BoolInstallVoice% = 1 THEN CreateProgmanItem "Net Commander", "NetCall", DESTTCP$ + "NETTALK.EXE", "", cmoOverwrite ELSE CreateProgmanItem "Net Commander", "NetCall", DESTTCP$ + "IVC.EXE", "", cmoOverwrite END IF '' IF BoolInstallPhone% = 1 THEN '' CreateProgmanItem "Net Commander", "Internet Phone", DESTTCP$ + "IPHONE.EXE", "", cmoOverwrite '' END IF IF BoolInstallSeeMe% = 1 THEN CreateProgmanItem "Net Commander", "CuSeeMe", DESTTCP$ + "CUSEEME.EXE", "", cmoOverwrite END IF IF BoolInstallTrueSpeech% = 1 THEN IF BoolKernelSupports32% = 1 THEN CreateProgmanItem "Net Commander", "TrueSpeech", DESTTCP$ + "TSPLAY32.EXE", "", cmoOverwrite ELSE CreateProgmanItem "Net Commander", "TrueSpeech", DESTTCP$ + "TSPLAYER.EXE", "", cmoOverwrite END IF AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5 END IF CreateProgmanItem "Net Commander", "MPEG Player", DESTTCP$ + "VMPEGWIN.EXE", "", cmoOverwrite IF BoolInstallWhoIs% = 1 THEN szTemp1$ = DESTTCP$ szTemp$ = szTemp1$ + "whois.ico,,,," + szTemp1$ CreateProgmanItem "Net Commander", "WhoIs", DESTTCP$ + "WHOIS.EXE", szTemp$, cmoOverwrite END IF ''*** ''*** Add CD-ROM SETUPS ''*** IF BoolKernelSupports32% = 1 THEN GOTO SKIPCDROMINST END IF SrcPath$ = GetSymbolValue("STF_SRCDIR") SrcDir$ = MID$(SrcPath$, 1, 3) '' SrcDir$ = "c:\release\" '' Acrobat Reader SrcFile$ = SrcDir$ + "READERAD\ACROREAD.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Acrobat Setup", SrcFile$, "", cmoOverwrite END IF '' SoftQuad Panorama SrcFile$ = SrcDir$ + "PANORAMA\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Panorama Setup", SrcFile$, "", cmoOverwrite END IF '' Apple QuickTime SrcFile$ = SrcDir$ + "QTW\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "QuickTime for Windows Setup", SrcFile$, "", cmoOverwrite END IF '' add the movie '' MosaicExe$ = DESTXF$ + "SMOSAIC.EXE" '' szTemp$ = SrcDir$ + "MOV/qtmovies.ico,,,," + DESTXF$ '' szTemp1$ = " file:///" + MID$(SrcDir$, 1, 1) '' LEFT$(SrcDir$, 1) '' szTemp2$ = szTemp1$ + "|/MOV/MOVIE.HTM" '' CreateProgmanItem "Net Commander", "Luckman Videos", MosaicExe$ + szTemp2$, szTemp$, cmoOverwrite '' END IF '' Microsoft Video for Windows IF BoolKernelSupports32% = 0 THEN SrcFile$ = SrcDir$ + "VFW\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Video for Windows Setup", SrcFile$, "", cmoOverwrite END IF END IF '' Stream Works SrcFile$ = SrcDir$ + "STREAMWK\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "StreamWorks Setup", SrcFile$, "", cmoOverwrite END IF '' Check Free Wallet SrcFile$ = SrcDir$ + "WALLETCF\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Check Free Wallet Setup", SrcFile$, "", cmoOverwrite END IF '' Mpeg Player SrcFile$ = SrcDir$ + "MPEG\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Mpeg Player Setup", SrcFile$, "", cmoOverwrite END IF '' WWW Yellow Pages Setup SrcFile$ = SrcDir$ + "YP\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "WWW Yellow Pages Setup", SrcFile$, "", cmoOverwrite END IF '' Net Commander Manual -- only for 3.1x IF BoolKernelSupports32% = 0 THEN SrcFile$ = SrcDir$ + "MANUAL\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "Net Commander Manual Setup", SrcFile$, "", cmoOverwrite END IF ENDIF '' commented out !!!!!!!!!!!!!!!!!!!!!!!! IF 0 THEN '' VDOLIVE Setup SrcFile$ = SrcDir$ + "VDOLIVE\VDOLIVE.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "VDOLive Player Setup", SrcFile$, "", cmoOverwrite END IF END IF IF 0 THEN '' VRML Player Setup SrcFile$ = SrcDir$ + "VRML\DISK1\SETUP.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN CreateProgmanItem "Net Commander Setup", "VRML Player Setup", SrcFile$, "", cmoOverwrite END IF END IF '' commented out !!!!!!!!!!!!!!!!!!!!!!!!! IF 0 THEN '' REAL AUDIO Setup SrcFile$ = SrcDir$ + "REALAU16\RA16_2B1.EXE" RAFILE$ = "\RA16_2B1.EXE" IF DoesFileExist( SrcFile$, femExists ) THEN RADEST$ = DESTXF$ + "RAPLAYER" CreateDir RADEST$, cmoNone RAFILE$ = RADEST$ + RAFILE$ CopyFile SrcFile$, RAFILE$ , cmoNone, 0 CreateProgmanItem "Net Commander Setup", "Real Audio Setup", RAFILE$, "", cmoOverwrite END IF END IF SKIPCDROMINST: IF BoolWeInstalledTCPPro% = 1 THEN CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Helpers", "telnet", DESTTCP$ + "TRMPTEL.EXE %s", cmoOverwrite CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Viewers", "video/mpeg", DESTTCP$ + "VMPEGWIN.EXE %s", cmoOverwrite END IF ''*** If running under Windows 95, execute PINAAC.EXE and return ''*** ''*** Add electronic registration to WIN.INI "load" keyword ''*** IF BoolWeInstalledWin32s% = 1 THEN sz$ = GetIniKeyString ("WIN.INI", "windows", "load") szTemp$ = MakePath(DESTXF$, "PINAAC.EXE") '' Does not work with Trumpet '' IF DoesFileExist( szTemp$, femExists ) THEN '' CreateIniKeyValue "WIN.INI", "windows", "load", sz$ + " " + szTemp$, cmoOverwrite '' END IF END IF ''*** ''*** if we installed Win32s, then we must force a reboot of the system. ''*** IF BoolWeInstalledWin32s% = 0 THEN IF BoolKernelSupports32% = 0 THEN sz$ = UIStartDlg(CUIDLL$, TRANSFORMINSTALLED, "FInfoDlgProc", 0, "") ELSE sz$ = UIStartDlg(CUIDLL$, TRANSFORMINSTALLED32, "FInfoDlgProc", 0, "") ENDIF '' IF BoolKernelSupports32% = 0 THEN '' start the registration '' szTemp$ = MakePath(DESTXF$, "PINAAC.EXE") '' Under Windows 3.1 start the Registration (no good for Trumpet) '' i% = WinExec(szTemp$, 1) '' END IF ELSE sz$ = UIStartDlg(CUIDLL$, RESTARTINGWINDOWS, "FInfoDlgProc", 0, "") RebootSystem ''*** ''*** We survived a 'reboot'; something must be wrong. Panic. ''*** CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite i% = DoMsgBox("Win32s is not properly configured and Win32s Setup must be run again.", "Unable to Restart Windows", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL) END IF END ''**************************************************************************** ''**************************************************************************** ''*** ''*** Spyglass Transform Error Handling. ''*** ''**************************************************************************** ''**************************************************************************** QUITTRANSFORMINSTALL: ON ERROR GOTO ERRQUIT IF ERR = STFQUIT THEN i% = DoMsgBox("Terminating Net Commander installation.","Net Commander Setup", MB_OK+MB_TASKMODAL) END IF i% = DoMsgBox("Net Commander has not been installed.","Net Commander Setup", MB_OK+MB_TASKMODAL) END ERRNORMALTRANSFORM: IF ERR = STFQUIT THEN GOTO QUITTRANSFORMINSTALL END IF RESUME NEXT '************************************************************************* '************************************************************************* '*** '*** QUIT -- Initial error handler (until we define our own). '*** '************************************************************************* '************************************************************************* QUIT: IF ERR <> STFQUIT THEN i% = DoMsgBox("Unable to start Setup.","Enhanced Mosaic Setup", MB_OK+MB_TASKMODAL) END IF END '************************************************************************* '************************************************************************* '*** '*** BADPATH '*** '************************************************************************* '************************************************************************* BADPATH: sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "") IF sz$ = "REACTIVATE" THEN GOTO BADPATH END IF UIPop 1 RETURN '************************************************************************* '************************************************************************* '*** '*** ASKQUIT '*** '************************************************************************* '************************************************************************* ASKQUIT: sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "") IF sz$ = "EXIT" THEN UIPopAll ERROR STFQUIT ELSEIF sz$ = "REACTIVATE" THEN GOTO ASKQUIT ELSE UIPop 1 END IF RETURN '************************************************************************* '************************************************************************* '** '** DoWin32sInstallation '** '** Purpose: '** Builds the copy list and performs all installation operations. '** Arguments: '** none. '** Returns: '** none. '** '************************************************************************* '************************************************************************* SUB DoWin32sInstallation STATIC SrcDir$ = GetSymbolValue("STF_SRCDIR") AddSectionFilesToCopyList "WindowsSystem", SrcDir$, DESTSYS$ AddSectionFilesToCopyList "WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\" '' Add obsolete files to be removed AddSectionFilesToCopyList "Win32sSystemObsoleteFiles", SrcDir$, DESTSYS$ + "WIN32S\" SetRestartDir GetWindowsDir() CopyFilesInCopyList END SUB '************************************************************************** '************************************************************************** '** '** UpdateSystemIni '** '************************************************************************** '************************************************************************** SUB UpdateSystemIni STATIC VxDPath$ = DEST32S$ + "W32S.386" SystemIniPath$ = GetWindowsDir() t% = MakeSystemIni(SystemIniPath$, VxdPath$) END SUB '************************************************************************** '************************************************************************** '** '** RebootSystem '** '************************************************************************** '************************************************************************** SUB RebootSystem STATIC ' Check if any files were locked during install. If the RestartList ' is not empty, ExitExecRestart() will restart Windows, cleanup setup ' files, and copy over locked files before Windows restarts. i% = RestartListEmpty() IF i% = 0 THEN ' ExitExecRestart() only returns if applications refuse to be shutdown. ' Win32s is installed but will not operate until Windows is restarted ' and the Win32s VxD is loaded. i% = ExitExecRestart() ELSE ' If the RestartList list is empty, it is necessary to restart windows ' directly. The MSSETUP program creates _MSRSTRT.EXE and _MSSETUP.BAT ' in the restart directory. This program should be exec'd to handle ' proper MSSETUP cleanup (temp files) and restart Windows. i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" ) END IF END SUB '************************************************************************** '************************************************************************** '** '** MakePath '** '** Purpose: '** Appends a file name to the end of a directory path, '** inserting a backslash character as needed. '** Arguments: '** szDir$ - full directory path (with optional ending "\") '** szFile$ - filename to append to directory '** Returns: '** Resulting fully qualified path name. '************************************************************************* '************************************************************************** FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING IF szDir$ = "" THEN MakePath = szFile$ ELSEIF szFile$ = "" THEN MakePath = szDir$ ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN MakePath = szDir$ + szFile$ ELSE MakePath = szDir$ + "\" + szFile$ END IF END FUNCTION